return {
	{
		"hrsh7th/nvim-cmp",
		config = function()
			local cmp = require('cmp')

			cmp.setup {
				snippet = {
					expand = function(args)
						vim.snippet.expand(args.body)
					end,
				},
				sources = {
					{ name = 'nvim_lsp' },
					{ name = 'nvim_lua' },
					{ name = "supermaven" },
					{ name = 'buffer' },
					{ name = 'path' },
				},
				-- mapping = cmp.mapping.preset,
				mapping = {
					['<C-n>'] = cmp.mapping.select_next_item(),
					['<C-p>'] = cmp.mapping.select_prev_item(),
					['<m-p>'] = cmp.mapping.scroll_docs(-4),
					['<m-n>'] = cmp.mapping.scroll_docs(4),
					['<C-Space>'] = cmp.mapping.complete(),
					['<C-e>'] = cmp.mapping.abort(),
					['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
				},
			};

			vim.keymap.set({ "i", "s" }, "<c-j>", function()
				return vim.snippet.active { direction = 1 } and vim.snippet.jump(1)
			end, { silent = true })

			vim.keymap.set({ "i", "s" }, "<c-k>", function()
				return vim.snippet.active { direction = -1 } and vim.snippet.jump(-1)
			end, { silent = true })
		end
	},
	{
		"hrsh7th/cmp-nvim-lua",
		dependencies = { "hrsh7th/nvim-cmp" },
	},
	{
		"hrsh7th/cmp-nvim-lsp",
		dependencies = { "hrsh7th/nvim-cmp" },
	},
	{
		"hrsh7th/cmp-buffer",
		dependencies = { "hrsh7th/nvim-cmp" },
	},
	{
		"hrsh7th/cmp-path",
		dependencies = { "hrsh7th/nvim-cmp" },
	},
	{
		"hrsh7th/cmp-cmdline",
		dependencies = { "hrsh7th/nvim-cmp" },
	},
	{
		"supermaven-inc/supermaven-nvim",
		config = function()
			require("supermaven-nvim").setup({})
		end,
	},
}
